home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / ste / stedemo.lzh / MLOADSTE.S < prev    next >
Text File  |  1990-07-06  |  5KB  |  192 lines

  1. ***************************************************************
  2. *Tama on aanisamplerin parannettu lukuohjelmisto
  3. * Ladataan äänitiedosto ja tulostetaan sitä STE-mallilla
  4. * 30.01.90 Juha Valtanen
  5. ***************************************************************
  6.  
  7. gia      equ     $ffff8802       aanipiiri
  8. mfp      equ     $fffa01 
  9.    
  10. dmactr     equ    $ff8900        päällä/pois
  11.  
  12. dma1     equ    $ff8903        puskurin alkuosoite
  13. dma2     equ    $ff8905
  14. dma3     equ    $ff8907
  15.  
  16. len1     equ    $ff890f        puskurin loppuosoite
  17. len2     equ    $ff8911
  18. len3     equ    $ff8913
  19.  
  20. smod    equ    $ff8920        mode toistolle
  21. mwmask    equ    $ff8922
  22. mwdata    equ    $ff8924
  23.     
  24. cr       equ       $0d
  25. lf       equ       $0a     
  26.  
  27. **********************************************************
  28. * tasta alkaa paaohjelma
  29.  
  30. main     move.l    sp,a5          pointteri talteen
  31.           lea       pino,sp        uusi pino
  32.           
  33.           move.w    #20,-(sp)      kursori piiloon
  34.           move.w    #0,-(sp)       ei kursoria
  35.           move.w    #21,-(sp)
  36.           trap      #14
  37.           addq.l    #6,sp
  38.  
  39.           clr.l     -(sp)          super tilaan
  40.           move.w    #$20,-(sp)
  41.           trap      #1
  42.           lea       6(sp),sp
  43.           move.l    d0,s_save      entinen super pino talteen
  44.  
  45.           move.l    4(a5),a5       kantasivun osoite
  46.           
  47.           move.l    a5,d0          
  48.  
  49.           move.l    8(a5),d0       koodin pituus
  50.           add.l     #$100,d0       ja hieman lisaa
  51.  
  52.           move.l    d0,-(sp)       vapautetaan tila
  53.           move.l    a5,-(sp)       kantasivusta lahtien
  54.           move.w    #0,-(sp)
  55.           move.w    #$4a,-(sp)     kutsu setblock
  56.           trap      #1
  57.           lea       12(sp),sp
  58.      
  59.  
  60.           move.l    #-1,-(sp)      haetaan vapaan muistin maara
  61.           move.w    #$48,-(sp)
  62.           trap      #1
  63.           lea       6(sp),sp
  64.           move.l    d0,memfree     vapaan muistin määrä
  65.  
  66. main2    move.l    memfree,d0     varataan talletustila
  67.           move.l    d0,-(sp)       varataan tilaa max
  68.           move.w    #$48,-(sp)
  69.           trap      #1
  70.           addq.l    #6,sp
  71.          
  72.           move.l    d0,aktiivi     talletusblokin alkuosoite
  73.           move.l    memfree,aklen  talletus blokin max pituus
  74.      
  75. mloop   bsr     load            haetaan data muistiin   
  76.  
  77.     move.l    aktiivi,a0
  78.     move.l    aklen,d0
  79.     
  80. mm1    move.b    (a0),d1
  81.     add.b    #$80,d1
  82.     move.b    d1,(a0)+
  83.     subq.l    #1,d0
  84.     bne    mm1
  85.     
  86.     
  87.     move.l    aktiivi,d0    puskurin alkukohta
  88.     and.l    #$fffffffe,d0    parillinen osoite
  89.     move.b    d0,dma3
  90.     lsr.l    #8,d0
  91.     move.b    d0,dma2
  92.     lsr.l    #8,d0
  93.     move.b    d0,dma1
  94.     
  95.     
  96.     move.l    aktiivi,d0    puskurin loppuosoite
  97.     add.l    aklen,d0
  98.     and.l    #$fffffffe,d0    parillinen osoite
  99.     
  100.     move.b    d0,len3
  101.     lsr.l    #8,d0
  102.     move.b    d0,len2
  103.     lsr.l    #8,d0
  104.     move.b    d0,len1
  105.     
  106.     move.w    #%0000000010000001,smod    
  107.     
  108.  
  109.     move.w    #$7ff,mwmask
  110.     move.w    #%01010001100,mwdata
  111.     
  112.     move.w    #3,dmactr    ääni päälle ja toistoa.
  113.         
  114.     
  115. loop    bra    loop
  116.     
  117. **********************************************************************
  118. * load lataa tiedoston levyltä
  119.  
  120.  
  121. load      move.w    #$02,-(sp)     avataan tiedosto
  122.           pea       name
  123.           move.w    #$3d,-(sp)
  124.           trap      #1
  125.           lea       8(sp),sp
  126.           move.w    d0,handle
  127.  
  128.           move.l    aktiivi,-(sp)  alkuosoite
  129.           move.l    aklen,-(sp)    maksimipituus
  130.           move.w    handle,-(sp)
  131.           move.w    #$3f,-(sp)
  132.           trap      #1
  133.           lea       12(sp),sp
  134.  
  135.           move.l    d0,aklen       oikea pituus
  136.  
  137.           move.w    handle,-(sp)   suljetaan tiedosto
  138.           move.w    #$3e,-(sp)
  139.           trap      #1
  140.           lea       4(sp),sp
  141.  
  142.           rts
  143.           
  144. name     dc.b      '*.snd',0
  145.           even
  146.  
  147. ****************************************************************
  148. *  ginit alustaa PCM piirin
  149.  
  150.  
  151. ginit    lea       gia,a0         pointteri aanipiiriin
  152.           lea       $fffffa01,a1  
  153.           lea       $fffffc00,a6   nappaimisto acian osoite
  154.  
  155.           move.l    #5,d0          'puhdistataan' aanipiiri
  156. ginit2   move.b    d0,-2(a0)      valitaan rekisteri
  157.           move.b    #0,(a0)        nollataan se
  158.           dbra      d0,ginit2
  159.  
  160.           move.b    #7,-2(a0)      mikseri-rekistri
  161.           move.b    -2(a0),d0
  162.           or.b      #%00111111,d0  ei aania 
  163.           move.b    d0,(a0)
  164.  
  165.           rts
  166. *******************************************************************
  167.  
  168. text     movem.l   d0/a0,-(sp)
  169.           move.l    a0,-(sp)
  170.           move.w    #9,-(sp)
  171.           trap      #1
  172.           lea       6(sp),sp
  173.           movem.l   (sp)+,d0/a0
  174.           rts
  175.  
  176.     
  177.           even
  178.  
  179. s_save   ds.l     1
  180. srsave   ds.l     1
  181. memfree  ds.l     1             vapaan muistin maara
  182. aktiivi  ds.l     3             talletuksen osoite, max pituus, pituus
  183. aklen    ds.l     1
  184. linea    ds.l     1              taulukkopointteri
  185. handle   ds.l     1
  186. sss      ds.l     100
  187. pino     ds.l     1
  188.  
  189.           end
  190.  
  191.  
  192.